package com.netease.financial.data.repository.datasource;

import com.netease.financial.data.entity.AccessTokenCheckEntity;
import com.netease.financial.data.entity.AppUpdateEntity;
import com.netease.financial.data.entity.LaunchPageEntity;
import com.netease.financial.data.entity.LoginEntity;
import com.netease.financial.data.entity.LogoutEntity;
import com.netease.financial.data.entity.ActivityPageEntity;
import com.netease.financial.data.entity.PageInfoEntity;
import com.netease.financial.data.entity.RegisterEntity;
import com.netease.financial.data.entity.UnreadMessageCountEntity;
import com.netease.financial.domain.interactor.RegisterInput;

import java.util.List;

import rx.Observable;

/**
 * Created by wyf on 8/2/15.
 */
public interface NfsDataStore {

    Observable<AppUpdateEntity> getAppUpdateInfo(String device, int versionCode);

    Observable<UnreadMessageCountEntity> getUnreadMessageCount(String accessToken);

    Observable<LoginEntity> login(String clientId, String clientSecret, String appSecret);

    Observable<LogoutEntity> logout(String accessToken, String appSecret);

    Observable<AccessTokenCheckEntity> checkAccessToken(String accessToken, String appSecret);

    Observable<ActivityPageEntity> getActivityPageInfo();

    Observable<LaunchPageEntity> getLaunchPageInfo(int widthPixels, int heightPixels, String platform);

    Observable<RegisterEntity> register(RegisterInput registerInput);

    Observable<PageInfoEntity> getPageInfo(String pageName, List<String> elements, int widthPixels, int heightPixels, String platform);
}
